class: center, middle # CSCI 395.86 Open Source Software Development
## A Brief History of Open Source Software .author[ Stewart Weiss, derived from slides by Joanna Klukowska
] .license[ Unless noted otherwise all content is released under a [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by/4.0/). ] --- name: forward ## Forward - This short set of slides is intended to give you the "big picture" and not so much detail - unless it is an interesting tidbit here or there. - The history of open source software is inseparable from the history of the Unix and GNU/Linux operating systems. Events such as the invention of the personal computer, email, and the Internet are also major factors in how and when open source developed. -- - As you will see, the world of software has come full circle -- software started out open, became closed for a while, and is gradually becoming ubiquitously open again. --- name: beginnings ## In the Beginning... - The earliest commercial computers were shipped with their .bluebold[operating code] so that users could customize the code for their needs. - There were no manuals, no instructions, no help from vendors for the shipped software - .bluebold[users just had to figure it all out on their own]. - Code-sharing was common - IBM's 704 operating system, the .bluebold[GM-NAA] I/O system, was co-written by two users: Robert Patrick of GM, and Owen Mock of North American Aviation. -- - There was a .bluebold[culture of sharing]: In August 1955, the first computer user group ([.bluebold[SHARE]](https://en.wikipedia.org/wiki/SHARE_computing)) was formed. - Meeting of seventeen organizations that used IBM 701s - IBM encouraged users to discuss and solve problems .bluebold[and] share their solutions -- - Typical hardware business model: buyers paid for hardware, the software did not matter much because - software was not standardized; worked only on the purchased hardware - sharing fixes and improvements to software made the hardware more valuable -- - There was no Internet: - widespread sharing was limited by the lack of technology - sharing often done through the original manufacturer of the hardware --- name: fifties_sixties ## And then ... - FORTRAN was developed. It was the first high-level programming language. COBOL followed shortly after. - The economic model of selling hardware started to change: - hardware was becoming standardized; the differences were in supplied software - users could use software on hardware provided by other manufacturers - software became a commodity - it was now for sale - During the 1960's, DARPA funded research to create communication networks that would allow distant computers to communicate. -- .bluebold[In 1969] - The first link between two universities was established, and shortly after - more universities were added and it was named the ARPANET - later changed name to become the Internet - And, Ken Thompson, Dennis Ritchie and others started working on a "little-used PDP-7 in a corner" in Bell Labs on what was to become UNIX. - They invented the C programming language to help write this operating system. - UNIX was written mostly in C and was portable - users just needed to modify the source code for it to run on their hardware. So __source code was always shipped with the executable__. --- name: seventies_1 ## Early 1970's - 1970: email was invented by Ray Tomlinson - A seemingly insignificant event: - Richard Stallman, a student at Harvard, joined the Artificial Intelligence Lab at MIT in 1971 - 1973: Dennis Ritchie and Ken Thompson present a paper about UNIX in the Symposium on Operating System Priinciples. Audience reacted with enthusiasm and wanted copies of code. - AT&T is in a bind; decides to give UNIX to academic and research institutions just for price of media. -- - By mid seventies, user groups were being created on the ARPANET - Culture of sharing continues through the 70's. - 1976: Richard Lions of University of New South Wales (Australia) annotates the 6th Edition Unix source code. Copies circulated throughout universities worldwide. - Still in use today. - It was the norm to share and build on each others work. --- name: seventies_2 ## Mid 1970's - AT&T starts licensing Unix to universities and commercial firms (i.e., they had to pay). - No support or bug fixes because it would violate its charter as a telephone company. - UNIX was distributed on magnetic tape. Second tape created in 1976 with 50 bug fixes and contributions from RAND Corporation, Naval PostGraduate School, UC San Diego, Yale, UIUC. AT&T tried to control distribution. - One day mysteriously, a copy of this 50-bug fix magnetic tape was "found" on the road (Mountain Avenue) near Bell Labs. This copy found its way into many hands.super[1] and was the beginning of the dissemination of UNIX Version V7. -- - UC Berkeley Computer Systems Research Group (CSRG) got a copy and wrote their own version of Unix, named BSD, and gave it out with source code. - .bluebold[AT&T ultimately sued Berkeley's CSRG for copyright infringement]. .footnote[ 1 As told by Lou Katz. At 1994 USENIX conference he "confessed" that he got a phone message telling him that if he drove down to Mountain Avenue around 2:00 PM that same day he would find something of interest. He drove from Manhattan to Murray Hill and found the tape. Without claiming responsibility for leaving it there, Ken Thompson said he would not have minded if that 50-bug fix tape "got around". The story has been corroborated by others who were there. See "The Daemon, the Gnu, and the Penguin" by Peter Salus, Reed Media Services, 2008. ] --- name: seventies_3 ## Late 1970's - Unix wars start as more and more versions of Unix crop up, many proprietary and closed source. The Unix community is balkanized. - .bluebold[The era of personal computers (PCs) arrives]. - Altair 8800, IBM 5100, Apple II, TRS-80, and others are marketed for home use. - Almost all are shipped with proprietary, closed code. --- ## 1980's: Disruptive changes - Microsoft starts selling its operating systems for PCs. - They sold only closed source, proprietary software. - Tools like compilers, editors, debuggers, libraries were also closed and proprietary (you had to buy them)). - Apple's home computers were sold with closed source software also. -- - As home computer use increases, Unix diminishes in usage outside of universities. -- - Sharing source is on the demise, but .bluebold[shareware] and .bluebold[freeware] are born. - Shareware was software you got for free and if you liked it you paid for it. - Freeware was software that you could use for free but those that could were asked to pay if they chose. --- ## The Revolt - It all starts in the AI Lab at MIT in 1980. From Wikipedia, https://en.wikipedia.org/wiki/Richard_Stallman, retrieved Jan. 19, 2018 : - Richard Stallman and some other hackers at the AI Lab were refused access to the source code for the software of a newly installed laser printer, the Xerox 9700. Stallman had modified the software for the Lab's previous laser printer (the XGP, Xerographic Printer), so it electronically messaged a user when the person's job was printed, and would message all logged-in users waiting for print jobs if the printer was jammed. Not being able to add these features to the new printer was a major inconvenience, as the printer was on a different floor from most of the users. This experience convinced Stallman of people's need to be able to freely modify the software they use. -- - This set Stallman on a mission to found a movement that would have profound effects on the world of computers. --- ## GNU and the Free Software Foundation - Stallman was so indignant that, by 1983, he announced on Usenet, that "_Starting this Thanksgiving I am going to write a complete Unix-compatible software system called GNU (for Gnu's Not Unix), and give it away free to everyone who can use it._" -- - "_The goal of GNU was to develop a completely free and open computer operating system and body of application software, in which users would never be prevented from hacking or from sharing their modifications._" [From _Producing Open Source Software_ by Karl Fogel] -- - In 1985, the .bluebold[Free Software Foundation] (FSF) was created by Richard Stallman to support the free software projects; - GNU General Public Lincense (GPL) was defined by the FSF - The GPL says that the code may be copied and modified without restriction, and that both copies and derivative works (i.e., modified versions) must be distributed under the same license as the original, with no additional restrictions - the original (version 1) is [GPL license](https://www.gnu.org/licenses/old-licenses/gpl-1.0.html) --- ## Early 1990's - 1991: [Linux kernel](https://en.wikipedia.org/wiki/Linux_kernel) is released by [Linus Torvalds](http://en.wikipedia.org/wiki/Linus_Torvalds) - _for fun_ project to create an operating system that was an alternative to minix (different design model) - completely open source from its inception - Torvalds asked for feedback and ideas from the community while he was working on it: the original post can be found here: https://groups.google.com/forum/#!original/comp.os.minix/dlNtH7RRrGA/SwRavCzVE7gJ -- - 1993: RedHat was founded - First company that made "free" source big business. - They proved that it was possible to make money on something that is in principle free. - 1994: Work began on MySQL - - the largest database solution of choice - another example of a company making money on an open source product --- ## Late 1990's - 1996: Apache takes over the Web - an example of an open source product that almost completely dominated the market. - has been consistently the most widely used web server software. - 1997: [Eric Raymond](http://en.wikipedia.org/wiki/Eric_S._Raymond) published [The Cathedral and the Bazaar](http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/index.html), a reflective analysis of the hacker community and free-software principles. - 1998: - Netscape Communicator source code is released on the Internet via Mozilla.org - Christine Peterson coined the term "open source" to replace "free" - Tom O'Reilly popularized "open source" by referring to the Freeware Summit of 1998 as the Open Source Summit. --- ## Early 2000's - From (https://www.theregister.co.uk/2001/06/02/ballmer_linux_is_a_cancer/): "Microsoft CEO and incontinent over-stater of facts Steve Ballmer said that 'Linux is a cancer that attaches itself in an intellectual property sense to everything it touches,' during a commercial spot masquerading as an interview with the Chicago Sun-Times on June 1, 2001." - 2003: Mozilla Firefox was released. - 2003: IBM airs a TV commercial entitled "Prodigy", featuring a boy sitting absorbing pearls of wisdom. Celebrities are shown making comments. Harvard professor Henry Gates says, "Sharing data is the first step toward community." The commercial ends with someone asking who the boy is, and being told, "His name is Linux." - 2005: `Git` project launched by Linus Torvalds - open source version of a commercially available distributed version control system. --- ## Late 2000's - 2008: - `GitHub` started (based on `Git`, on-line distributed version control services) - `Android` released by Google, has become the most popular mobile platform in the world - `Chromium` released by Google. - 2010: `LibreOffice` is released; a free and open source office suite including applications such as word processing, spreadsheets, drawing and database. - 2011: Microsoft survey of 1,000 software developers reveals that Git is the most popular revision control system among developers. [ From Wikipedia, https://en.wikipedia.org/wiki/Timeline_of_free_and_open-source_software#2010s, Retrieved September 4, 2019] - 2012 `Google Chrome` overtakes `Internet Explorer` to become most widely used web browser, according to StatCounter. - 2016: - The White House released its first official federal source code policy, requiring government agencies to release 20% of any new code as open source software. - Microsoft released `Chakra` as open source under MIT License; the code is available on `GitHub`. --- ## Afterthought: What is a Hacker? - Wikipedia definition:
A .bluebold[computer hacker] is any skilled computer expert that uses their technical knowledge to overcome a problem. While "hacker" can refer to any skilled computer programmer, the term has become associated in popular culture with a "security hacker", someone who, with their technical knowledge, uses bugs or exploits to break into computer systems. Retrieved 3/31/2019 -- - _The AI Lab had a strong .bluebold["hacker ethic"], and people were not only encouraged but expected to share whatever improvements they made to the system. As Stallman wrote later: _ > _We did not call our software "free software", because that term did not yet exist; but that is what it was. Whenever people from another university or a company wanted to port and use a program, we gladly let them. If you saw someone using an unfamiliar and interesting program, you could always ask to see the source code, so that you could read it, change it, or cannibalize parts of it to make a new program._ [From _Producing Open Source Software_ by Karl Fogel] - Eric Raymond: ["I am your worst nightmare](https://youtu.be/QG2MnhrrY7s) --- ## Sources and Acknowledgements - Gordon Haff, _How Open Source Ate Software_, Apress, 2018. - Peter Salus, _The Daemon, the Gnu, and the Penguin_, Reed Media Services, 2008. - [Producing Open Source Software](http://producingoss.com/) by Karl Fogel - [History of programming languages](https://en.wikipedia.org/wiki/History_of_programming_languages) - [Timeline of Open Source Software](https://en.wikipedia.org/wiki/Timeline_of_open-source_software) - [History of OSI](https://opensource.org/history), OSI = Open Source Initiative - [History of Open Source](https://www.longsight.com/learning-center/history-open-source) - [History of Free and Open Source Software](https://learn.canvas.net/courses/4/pages/history-of-free-and-open-source-software) - [The 9 most important events in open source history](http://royal.pingdom.com/2010/01/15/the-9-most-important-events-in-open-source-history/) - [GPL ver 1 license](https://www.gnu.org/licenses/old-licenses/gpl-1.0.html) ---